package com.delio.server.produccion.tipodocumentos;

import java.sql.SQLException;
import java.util.List;


import com.delio.client.produccion.tipodocumentos.TipoDocumento;
import com.delio.client.produccion.tipodocumentos.TipoDocumentoService;
import com.delio.server.base.Conexion;
import com.delio.server.base.util.GxtGridPaginate;
import com.extjs.gxt.ui.client.data.BasePagingLoadResult;
import com.extjs.gxt.ui.client.data.FilterPagingLoadConfig;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.ibatis.sqlmap.client.SqlMapClient;

public class TipoDocumentoServiceImpl extends RemoteServiceServlet implements TipoDocumentoService{

	private static final long serialVersionUID = 1L;

	static SqlMapClient sqlMap = Conexion.getSqlMap();
	
	@SuppressWarnings("unchecked")
	@Override
	public PagingLoadResult<TipoDocumento> paginateTipoDocumento(FilterPagingLoadConfig config) {
		
		GxtGridPaginate paginate = new GxtGridPaginate();
		paginate.config = config;
		paginate.setLimit();
		if(paginate.order.equals("")){
			paginate.order = " order by id desc";
		}
		List<TipoDocumento> data = null;
		try {
			data = sqlMap.queryForList("paginateTipoDocumento", paginate);				
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return new BasePagingLoadResult<TipoDocumento>(data, paginate.offset, count(paginate));
	}
	
	
	public Integer count(GxtGridPaginate paginate){
		Integer count = null;
		try {
			count = (Integer) sqlMap.queryForObject("countTipoDocumento", paginate);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return count;
	}
	
	public boolean guardar(TipoDocumento td) {

	  boolean var = false;
	   try{
		   sqlMap.insert("insertTipoDocumento",td);
		   var = true;
	   }catch(Exception e){
		   e.printStackTrace();
	   }
		return var;
	}

	@SuppressWarnings("unchecked")
	public List<TipoDocumento> LitarTipoDocumento() {
	     List<TipoDocumento> ltd = null;
	     try{
	    	 ltd = sqlMap.queryForList("ListTipoDocumento");
	     }catch(Exception e){
	    	 e.printStackTrace();
	     }
		return ltd;
	}
	
	@SuppressWarnings("unchecked")
	public List<TipoDocumento> LitarTipoDocumentoS() {
	     List<TipoDocumento> ltd = null;
	     try{
	    	 ltd = sqlMap.queryForList("ListTipoDocumento");
	     }catch(Exception e){
	    	 e.printStackTrace();
	     }
		return ltd;
	}

	@Override
	public boolean eliminar(Integer id) {
	  boolean var = false;
		try{             
			sqlMap.delete("deleteTipoDocumento",id);
			var = true;
		}catch(Exception e){
			e.printStackTrace();
		}
		return var;
	}


	public boolean actualizar(TipoDocumento td) {
	
		boolean var = false;
		try{
			sqlMap.update("updateTipoDocumento",td);
			var = true;
		}catch(Exception e){
			e.printStackTrace();
		}
		return var;
	}

}
